﻿#ifndef POSTCOMMAND_CMDSAVEPOLARCOORDINATEGRAPHMAINSETTINGDATA_H
#define POSTCOMMAND_CMDSAVEPOLARCOORDINATEGRAPHMAINSETTINGDATA_H

#include "CommandManager/CommandBase.h"

namespace PostCommand
{
    /// @brief 后处理保存图像命令
    class CmdSavePolarCoordinateGraphMainSettingData : public CommandManager::CommandBase
    {
        Q_OBJECT

    public:
        CmdSavePolarCoordinateGraphMainSettingData();
        ~CmdSavePolarCoordinateGraphMainSettingData();

        bool execute() override;
        void undo() override;
        void redo() override;

        void setPolarCoordinateGraphMainSettingData(int mainWindowId, int index, QString(angDisAxisColor), int angDisAxisThickness, double angDisValuePrecision, QString(angDisAxisDigitColor), int angDisAxisDigitSize,
                                                    bool angRangIsAutoStepSize, double angRangCustomStepSize,
                                                    QString(radDisAxisColor), int radDisAxisThickness, double radDisValuePrecision, QString(radDisAxisDigitColor), int radDisAxisDigitSize,
                                                    bool radRangIsAutoRange, double radRangMaxValue, double radRangMinValue, bool radRangIsAutoStepSize, double radRangCustomStepSize,
                                                    bool gridIsMainGridLineDisplay, QString(gridMainGridLineColor), int gridMainGridLineStyle, double gridMainGridLineThickness,
                                                    QString(titleName), QString(titleFontColor), int titleFontSize,
                                                    QString(legendFontColor), int legendFontSize, QString(legendLineColor), int legendLineThickness,
                                                    QString(dataProResultDataName), QString(dataProDataLineColor), int dataProDataLineStyle, double dataProDataLineThickness, bool dataProIsDisplaySymbol, int dataProSymbolStyle, double dataProSymbolSize, QString(dataProSymbolColor));

    private:
        int m_mainWindowId;
        int m_index;
        QString m_angDisAxisColor;
        int m_angDisAxisThickness;
        double m_angDisValuePrecision;
        QString m_angDisAxisDigitColor;
        int m_angDisAxisDigitSize;
        bool m_angRangIsAutoStepSize;
        int m_angRangCustomStepSize;
        QString m_radDisAxisColor;
        int m_radDisAxisThickness;
        double m_radDisValuePrecision;
        QString m_radDisAxisDigitColor;
        int m_radDisAxisDigitSize;
        bool m_radRangIsAutoRange;
        double m_radRangMaxValue;
        double m_radRangMinValue;
        bool m_radRangIsAutoStepSize;
        double m_radRangCustomStepSize;
        bool m_gridIsMainGridLineDisplay;
        QString m_gridMainGridLineColor;
        int m_gridMainGridLineStyle;
        double m_gridMainGridLineThickness;
        QString m_titleName;
        QString m_titleFontColor;
        int m_titleFontSize;
        QString m_legendFontColor;
        int m_legendFontSize;
        QString m_legendLineColor;
        int m_legendLineThickness;
        QString m_dataProResultDataName;
        QString m_dataProDataLineColor;
        int m_dataProDataLineStyle;
        double m_dataProDataLineThickness;
        bool m_dataProIsDisplaySymbol;
        int m_dataProSymbolStyle;
        double m_dataProSymbolSize;
        QString m_dataProSymbolColor;
    };
} // namespace PostCommand

#endif
